﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

// NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "Service1" en el código, en svc y en el archivo de configuración.
public class MercadoLibreService : IMercadoLibreService
{
    public List<Articulo>ListarArticulos()
    {
        var articulos = new List<Articulo> { 
                new Articulo { Id=1, Nombre= "Samsung Galaxy Ace", Precio=899, Cantidad=2, UrlImagen="1.jpg" },
                new Articulo { Id=2, Nombre= "Polos 100% Algodon", Precio=60, Cantidad=3, UrlImagen="2.jpg" },
                new Articulo { Id=3, Nombre= "Zapatillas Puma Ferrari Blancas", Precio=220, Cantidad=4, UrlImagen="3.jpg" },
                new Articulo { Id=4, Nombre= "Cámara filmadora Genius Digital", Precio=399, Cantidad=2, UrlImagen="4.jpg" },
            };

        return articulos;
    }

    public List<Articulo> BuscarArticulos(string texto)
    {
        var articulos = ListarArticulos();
        return articulos.Where(a => a.Nombre.Contains(texto)).ToList();    
    }

    public Articulo ObtenerArticulo(int id)
    {
        switch (id)
        {
            case 1: return new Articulo { Id = 1, Nombre = "Samsung Galaxy Ace", Precio = 899, Cantidad = 2, UrlImagen = "1.jpg" }; break;
            case 2: return new Articulo { Id = 2, Nombre = "Polos 100% Algodon", Precio = 60, Cantidad = 3, UrlImagen = "2.jpg" }; break;
            case 3: return new Articulo { Id = 3, Nombre = "Zapatillas Puma Ferrari Blancas", Precio = 220, Cantidad = 4, UrlImagen = "3.jpg" }; break;

            case 4: return new Articulo { Id = 4, Nombre = "Cámara filmadora Genius Digital", Precio = 399, Cantidad = 2, UrlImagen = "4.jpg" }; break;

        }

        return new Articulo();
    }

    //public CompositeType GetDataUsingDataContract(CompositeType composite)
    //{
    //    if (composite == null)
    //    {
    //        throw new ArgumentNullException("composite");
    //    }
    //    if (composite.BoolValue)
    //    {
    //        composite.StringValue += "Suffix";
    //    }
    //    return composite;
    //}
}
